Asterisk in pillole - programmare in AEL, "Asterisk Extensions Language"

Abbiamo visto nello scorso articolo, come e' strutturato il file extensions.conf che definisce il dialplan di Asterisk.

Esiste un'altra sintassi, introdotta nelle ultime versioni di Asterisk, creata per rendere la stesura di dialplan piu' semplice rispetto al tradizionale che abbiamo visto.

Si chiama AEL e sta per "Asterisk Extensions Language", il suo scopo e' quello di rendere la stesura del dialplan una attivita' semplice e veloce e per chi ha dimestichezza con qualche linguaggio di programmazione, trovera' questa sintassi molto familiare.

Il parser AEL e' separato dal parsing di extensions.conf, il modulo (pbx_ael.so) puo' essere caricato automaticamente all'avvio impostando autoload=yes in /etc/asterisk/modules.conf.

Il file per AEL, extensions.ael, si trova ovviamente in /etc/asterisk.

I due file relativi al dialplan, extensions.conf e extensions.ael, possono coesistere e operare in sinergia.

La stesura di un contesto inizia cosi':

context miocontesto {

};

Attenzione le parentesi graffe devono essere usate e posizionate come specificato sopra.

Volendo fare un confronto con i contesti di esempio scritti nello scorso articolo dovremmo avere un risultato simile a quanto segue:

in extensions.conf

[chiama_200]
exten => 200,1,Dial(SIP/200,20)
exten => 200,n,GoToIf($["${DIALSTATUS}" = "BUSY"]?:noanswer,s,1)
exten => 200,n,Playback(custom/occupato)
exten => 200,n,Hangup()

[noanswer]
exten => s,1,Voicemail(200@voicemail,u)
exten => s,n,Hangup()

in extensions.ael

context chiama_200 {
200 => {
Dial(SIP/200,20);
If ("${DIALSTATUS}" = "BUSY") {
Playback(custom/occupato);
Hangup();
} else {
goto noanswer|s|1;
}
};
};
context noanswer {
s => {
Voicemail(200|u);
Hangup();
};
};
 
Quindi come si vede sopra, il contesto viene definito come un blocco di codice compreso tra parentesi graffe all'interno del quale vi e' un insieme di blocchi, ognuno riferito ad una extension, e ogni linea, come nei piu' comuni linguaggi di programmazione, termina con un "punto e virgola".  

Migliora il tuo business. Partecipa ai nostri Corsi!

I nostri corsi OnLine ed in Aula sono studiati per garantire il miglior apprendimento e sono finalizzati a "creare professionisti nel settore".
Questi i prossimi corsi in calendario:

Corsi 2019

Corso Data Tipo